#!/usr/bin/perl -w

#-----------------------------------------------------------#
#  죄와벌++ 이율배반                                        #
#  Copyright(C) 2001-2002 by Vivid Studio.  BLANK BOARD      #
#  Vivid Studio. [ http://www17.big.or.jp/~obochan/vivid/ ]  #
#  BLANK BOARD [ http://pom.to/ ]                           #
#-----------------------------------------------------------#
# 창고 Version 1.5
# Arranged by 열리는 아
# HP타이틀 [http://aqure.zive.net/]
#--- [주의 사항] --------------------------------------------#
# ·이 스크립트는 이하의 이용 규정에 따라 배포하고 있습니다.   #
#   http://www24.big.or.jp/~obo/game/ore_/gild/             #
#-----------------------------------------------------------#


# 창고 스크립트
# 1.2	2004.5. 15 	송부시, 이용할 수 없는 이름의 캐릭터가 있기 때문에(위해), ID기록으로 변경
# 1.3	2004.4. 24 	도구의 수량 지정, 송금
# 1.4	2004.12. 10 	무기 레벨 대응
# 1.4a	2004.12. 11 	무기 레벨 보관 유지 수정
# 1.5	2005.1. 22 	방어용 기구의 꺼내 캔슬 버그 수정

#-----------------------------------------
# 각종 설정
$wall="warehouse";     # 창고 이미지
$npc="warehouse_a";	   # 창고 NPC
$soko_max 	= 20;	   # 창고 격납 최대수
$soko_file 	= "./logdata/sokofile.cgi";

#$flg_backup    = 1; 디버그용으로 기록한다
$soko_back 	= "./logdata/sokofile.bak";

$lockkey	= 1;		# 파일 락 0:없음 1:유
$lockfile	= "./logdata/sokofile.lock";

# 장비품 리스트
@eq = ($dg_a,$dg_a1,$dg_a2,$dg_a3
	,$df_a,$ds_a
	,$di_a,$di_a[1],$di_a[2],$di_a[3]);

@eq_cnt = ($dg_cnt,$dg_cnt1,$dg_cnt2,$dg_cnt3
	,$df_cnt,$ds_cnt
	,$di_cnt,$di_cnt[1],$di_cnt[2],$di_cnt[3]
	,$gold);
@eq_lv = ($dg_lv,$dg_lv[1],$dg_lv[2],$dg_lv[3]);

#-----------------------------------------
sub soko{
	$log .= qq|창고에 왔습니다.|;
	$type='쇼핑';
	$tm=300;
	&dat_write;
	&soko_com_out;
	&soko_menu;
}

#-----------------------------------------
# 창고 메뉴
sub soko_menu{
	@menu = ('창고를 나간다', '물건을 맡긴다', '물건을 찾는다');
	$log2 .= qq|<form action="$script" method="$method" name="ore_">\n|;
	$log2 .= qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
	$log2 .= qq|<input type="hidden" name="id" value="$id">\n|;
	$log2 .= qq|<input type="hidden" name="pw" value="$pw">\n|;
	$log2 .= qq|<select name="cmd" size="1">\n|;
	foreach(0..$#menu){
		$log2.=qq|<option value="$_">$menu[$_]</option>\n|;
	}
	$log2 .= qq|</select><br>\n|;
	$log2.=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}

#-----------------------------------------
# 창고 메인
sub soko_exe{
if($tm==300){
	if($cmd==1){	# 입고
		&eq_view;	
		$tm = 310;
	}elsif($cmd){	# 출고
		&soko_view;
		$tm = 320;
	}else{			# 캔슬
		$log .= qq|창고를 나왔습니다.|;
		$tm=0;$cmd=0;$type='';&call_main_st;
	}
}elsif($tm==310){	# 입고 처리
		if($in{'aite'} eq ''){
			&soko_in;
		}else{
			&soko_com_in;
		}
		$tm=300;$cmd=0;&soko_menu;
}elsif($tm==320){	# 출고 처리
		&soko_out;
		$tm=300;$cmd=0;&soko_menu;
}else{				# 캔슬
	$log .= qq|창고를 나왔습니다.<br>|;
	$tm=$cmd=0;$type=''; &call_main_st;
}

&dat_write;

}

# 비용을 계산
sub soko_com_cost{

  if($camp<$SAT{'camp'}){
    $v1=$camp;
    $v2=$SAT{'camp'};
  }elsif($camp>$SAT{'camp'}){
    $v1=$SAT{'camp'};
    $v2=$camp;
  }else{
    $v1=''; $v2='';
  }

  if($v1 == $v2){
	$soko_cost = 100; # int($dg_data[$eq[$cmd]][2]*0.1*(200-100)/100);
  }elsif($cmd>=0 && $cmd<=3){
	$soko_cost = int($dg_data[$eq[$cmd]][2]*0.1*(200-$cfs[$v2.$v1])/100);
  }elsif($cmd==4){
	$soko_cost = int($df_data[$eq[$cmd]][2]*0.1*(200-$cfs[$v2.$v1])/100);
  }elsif($cmd==5){
	$soko_cost = int($ds_data[$eq[$cmd]][2]*0.1*(200-$cfs[$v2.$v1])/100);
  }elsif($cmd>=6 && $cmd<=9){
	# $soko_cost = int($di_data[$eq[$cmd]][2]*0.1*(200-$cfs[$v2.$v1])/100*$eq_cnt[$cmd]);
	$soko_cost = int($di_data[$eq[$cmd]][2]*0.1*(200-$cfs[$v2.$v1])/100*$suryo);
  }elsif($cmd==10){
	$soko_cost = int($suryo*0.1*(200-$cfs[$v2.$v1])/100);
  }

}

#-----------------------------------------
# 상대 지정으로 맡긴다
sub soko_com_in{
	$suryo = $in{'suryo'};
	$suryo = 1 if($suryo<1);
	$suryo = $eq_cnt[$cmd] if($suryo>$eq_cnt[$cmd]);

	&usr_check;
    &soko_open;
	&soko_com_cost;

        if($#soko_lst>=$soko_max){
                $log .= qq|창고가 가득찼습니다.<br>더 이상은 맡길 수 없습니다.<br>|;
	}elsif($in{'aite'} ne $SAT{'nm'}){
		# 상대가 발견되지 않는다	
	}elsif($gold<$soko_cost){
		$log .= qq|비용이 충분하지 않습니다,$soko_cost 개의 실버가 필요합니다.|;
	}elsif($cmd==9){
		if($gold>$suryo+$soko_cost){
			$log .= "$suryo 개의 실버를 맡겼습니다.<br>";
			$log .= "수수료는".$soko_cost." 실버입니다.\n" if($soko_cost>0);
                        $soko_com .= qq|14<>0<>$suryo<>$time<>$id<>$to_uid<>_|;
			$gold-=($suryo+$soko_cost);
                        $wr_mes = qq|$date $cmp[$camp]의 $nm님은 $suryo 개의 실버를 $in{'aite'}에게 보냈습니다.<br>|; &hist_write;
		}else{
			$log .= qq|실버가 부족합니다.<br>$soko_cost 개의 실버가 필요합니다.\n|;
		}
        }elsif($cmd>=0 && $eq[$cmd]>0 && $eq_cnt[$cmd]>0){
                if($cmd>=0 && $cmd<=3){                 # 무기
                        # $soko_com .= qq|11<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$nm<>$in{'aite'}<>_|;
                        $soko_com .= qq|11<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$id<>$to_uid<>$eq_lv[$cmd]<>_|;
                        if($cmd==0){ $dg_a=0;$dg_cnt=0;$dg_lv=0; }
                        if($cmd==1){ $dg_a1=0;$dg_cnt1=0;$dg_lv[1]=0; }
                        if($cmd==2){ $dg_a2=0;$dg_cnt2=0;$dg_lv[2]=0; }
                        if($cmd==3){ $dg_a3=0;$dg_cnt3=0;$dg_lv[3]=0; }
                        $log .= qq|$dg_data[$eq[$cmd]][1] lv.$eq_lv[$cmd]($eq_cnt[$cmd])을 $in{'aite'}님에게 보냈습니다.<br>|;
                        $wr_mes = qq|$date $cmp[$camp]의 $nm님이 $dg_data[$eq[$cmd]][1] lv.$eq_lv[$cmd]($eq_cnt[$cmd])를 $in{'aite'}에게 보냈습니다.<br>|; &hist_write;
                }elsif($cmd==4){                                # 방어구
                        $soko_com .= qq|12<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$id<>$to_uid<>_|;
                        $df_a=0;$df_cnt=0;
                        $log .= qq|$df_data[$eq[$cmd]][1]($eq_cnt[$cmd])을 $in{'aite'}님에게 보냈습니다.<br>|;
                        $wr_mes = qq|$date $cmp[$camp]의 $nm님이 $df_data[$eq[$cmd]][1]($eq_cnt[$cmd])을 $in{'aite'}에게 보냈습니다.<br>|; &hist_write;
				}elsif($cmd==5){                                # 방패
                        $soko_com .= qq|13<>$eq[$cmd]<>$eq_cnt[$cmd]<>$time<>$id<>$to_uid<>_|;
                        $ds_a=0;$ds_cnt=0;
                        $log .= qq|$ds_data[$eq[$cmd]][1]($eq_cnt[$cmd])을 $in{'aite'}님에게 보냈습니다.<br>|;
                        $wr_mes = qq|$date $cmp[$camp]의 $nm님이 $ds_data[$eq[$cmd]][1]($eq_cnt[$cmd])을 $in{'aite'}에게 보냈습니다.<br>|; &hist_write;
                }elsif($cmd>=6 && $cmd<=9 && $eq_cnt[$cmd]>=$suryo){             # 도구
		
                        $soko_com .= qq|14<>$eq[$cmd]<>$suryo<>$time<>$id<>$to_uid<>_|;
			if($cmd==6){ 
				$di_cnt-=$suryo; 
				$di_a=0 if($di_cnt<1); 
			}
			if($cmd==7){ 
				$di_cnt[1]-=$suryo; 
				$di_a[1]=0 if($di_cnt[1]<1); 
			}
			if($cmd==8){ 
				$di_cnt[2]-=$suryo; 
				$di_a[2]=0 if($di_cnt[2]<1); 
			}
			if($cmd==9){ 
				$di_cnt[3]-=$suryo; 
				$di_a[3]=0 if($di_cnt[3]<1); 
			}

                        $log .= qq|$di_data[$eq[$cmd]][1]($suryo)을 $in{'aite'}님에게 보냈습니다.<br>|;
                        $wr_mes = qq|$date $cmp[$camp]의 $nm님이 $di_data[$eq[$cmd]][1]($suryo)을 $in{'aite'}에게 보냈습니다.<br>|; &hist_write;
                }else{
                        $log .= qq|취소되었습니다.|;
                }
		if($soko_cost){
			$gold -= $soko_cost;
			$log .= qq|<br>$soko_cost G 들었습니다.<br>|;
		}
        }else{
                $log .= qq|취소되었습니다.|;
        }

	&soko_write;
}

# 공용 창고 출고
sub soko_com_out{
	&soko_open;

	$soko_com = qq||;
	foreach(0..$#csoko_lst){
		# if($csoko_to[$_] eq $nm){
		if($csoko_to[$_] eq $id){
# 자기앞의 수취
# $log .= qq|<br>$csoko_from[$_]님으로부터 물건을 받았습니다.|;
$log .= qq|<br>물건이 도착해 있습니다.|;
$soko .= "$csoko_typ[$_]<>$csoko_lst[$_]<>$csoko_cnt[$_]<>$csoko_lv[$_]_";
		}else{
# 그 외의 짐
$soko_com .= "$csoko_typ[$_]<>$csoko_lst[$_]<>$csoko_cnt[$_]<>$csoko_time[$_]<>$csoko_from[$_]<>$csoko_to[$_]<>$csoko_lv[$_]_";
		}
	}
	&soko_write;
	&dat_write;
}

#-----------------------------------------
# 창고 파일
sub soko_open{
	# 창고 파일 read
	if(-e $soko_file){
		open(IN,"$soko_file") || &error("Can't open $soko_file.",1);
		$soko_com = <IN>;
		close(IN);
	}
	# 배열에 격납
	my @line_com = split(/_/,$soko_com);
	# $log .= qq|<br>*** $#line ***<br>|;
	foreach(0..$#line_com){
		my($typ,$lst,$cnt,$sokotime,$from,$to,$lv) = split(/<>/,$line_com[$_]);
		$csoko_typ[$_]=$typ;
		$csoko_lst[$_]=$lst;
		$csoko_cnt[$_]=$cnt;
		$csoko_time[$_]=$sokotime;
		$csoko_from[$_]=$from;
		$csoko_to[$_]=$to;
		$csoko_lv[$_]=$lv;
	}
}

sub soko_write{
	# if($lockkey){ &lock; }
	open(OUT,">$soko_file") || &error("Can't open $soko_file");
	print OUT $soko_com;
	close(OUT);
	if(-e $lockfile){ unlink($lockfile); }
        if($flg_backup==1){
	  open(BAK,">>$soko_back") || &error("Can't open $soko_file");
	  print BAK "$soko_com\n";
	  close(BAK);
        } 
}

#-----------------------------------------
# 행선지 확인
sub usr_check{
	local @tdat;
	
	# 참가자 데이터 파일 일람 취득/일괄 read
	opendir(DIR,"$usrdata") || &error("사용자 데이터 읽기 에러",1);
	@usrfile = grep /\.cgi/,readdir(DIR);
	closedir(DIR);
	
	foreach (0 .. $#usrfile) {
		open(IN,"$usrdata$usrfile[$_]") || &error("Can't open $usrfile[$_]",1);
		$line = <IN>;
		close(IN);
		push(@tdat,$line);
	}
	
	my $flag=0;
	foreach(0 .. $#tdat){
		%SAT = '';
		my @prats = split(/,/,$tdat[$_]);
		foreach $prats (@prats){
		  my($key,$v) = split(/;/,$prats);
		  $SAT{$key} = $v;
		}
		if($SAT{'nm'} eq $in{'aite'}){
                  $to_uid=$SAT{'id'};
                  $flag=1;
		  last;
		}
	}
	if(!$flag){
		$log = qq|$in{'aite'}이라는 참가자는 존재하지 않습니다.<br>| ;
                $to_uid="";
		# $tm=300;$cmd=0;&soko_menu;
	}


}

#-----------------------------------------
# 입고 처리
sub soko_in{
	&soko_read;

	$suryo = $in{'suryo'};
	$suryo = 1 if($suryo<1);
	$suryo = $eq_cnt[$cmd] if($suryo>$eq_cnt[$cmd]);
	
	if($#soko_lst>=$soko_max){
		$log .= qq|짐이 가득합니다.<br>더 이상은 맡길 수 없습니다.|;
	}elsif($cmd==10){	# 송금
		$log .= qq|자금 $suryo G를 맡겼습니다.<br>\n|;
		$soko .= "15<>0<>$suryo"."_";	
		$gold-=$suryo;
	}elsif($cmd>=0 && $eq[$cmd]>0 && $eq_cnt[$cmd]>0){
		if($cmd>=0 && $cmd<=3){			# 무기
			$soko .= qq|11<>$eq[$cmd]<>$eq_cnt[$cmd]<>$eq_lv[$cmd]<>_|;
			if($cmd==0){ $dg_a=0;$dg_cnt=0;$dg_lv=0; }
			if($cmd==1){ $dg_a1=0;$dg_cnt1=0;$dg_lv[1]=0; }
			if($cmd==2){ $dg_a2=0;$dg_cnt2=0;$dg_lv[2]=0; }
			if($cmd==3){ $dg_a3=0;$dg_cnt3=0;$dg_lv[3]=0; }
			$log .= qq|$dg_data[$eq[$cmd]][1]을 맡겼습니다.<br>|;
		}elsif($cmd==4){				# 방어용 기구
			$soko .= qq|12<>$eq[$cmd]<>$eq_cnt[$cmd]_|;
			$df_a=0;$df_cnt=0;
			$log .= qq|$df_data[$eq[$cmd]][1]을 맡겼습니다.<br>|;
		}elsif($cmd==5){				# 방패
			$soko .= qq|13<>$eq[$cmd]<>$eq_cnt[$cmd]_|;
			$ds_a=0;$ds_cnt=0;
			$log .= qq|$ds_data[$eq[$cmd]][1]을 맡겼습니다.<br>|;
		}elsif($cmd>=6 && $cmd<=9){		# 도구
			# $soko .= qq|13<>$eq[$cmd]<>$eq_cnt[$cmd]_|;
			$soko .= "14<>$eq[$cmd]<>$suryo"."_";
			if($cmd==6){ 
				$di_cnt-=$suryo; 
				$di_a=0 if($di_cnt<1); 
			}
			if($cmd==7){ 
				$di_cnt[1]-=$suryo; 
				$di_a[1]=0 if($di_cnt[1]<1); 
			}
			if($cmd==8){ 
				$di_cnt[2]-=$suryo; 
				$di_a[2]=0 if($di_cnt[2]<1); 
			}
			if($cmd==9){ 
				$di_cnt[3]-=$suryo; 
				$di_a[3]=0 if($di_cnt[3]<1); 
			}
			$log .= qq|$di_data[$eq[$cmd]][1]($suryo)을 맡겼습니다.<br>|;
		}else{
			$log .= qq|취소되었습니다.|;
		}
	}else{
		$log .= qq|취소되었습니다.|;
	}
}

#-----------------------------------------
# 출고 처리
sub soko_out{
	&soko_read;

	if($cmd>-1 && $soko_typ[$cmd]==11){			# 무기
		if($dg_a<1){
			$dg_a=$soko_lst[$cmd];
			$dg_cnt=$soko_cnt[$cmd];
			$dg_lv=$soko_lv[$cmd];
		}elsif($dg_a1<1){
			$dg_a1=$soko_lst[$cmd];
			$dg_cnt1=$soko_cnt[$cmd];
			$dg_lv[1]=$soko_lv[$cmd];
		}elsif($dg_a2<1){
			$dg_a2=$soko_lst[$cmd];
			$dg_cnt2=$soko_cnt[$cmd];
			$dg_lv[2]=$soko_lv[$cmd];
		}elsif($dg_a3<1){
			$dg_a3=$soko_lst[$cmd];
			$dg_cnt3=$soko_cnt[$cmd];
			$dg_lv[3]=$soko_lv[$cmd];
		}else{ $flg=-1; }
	}elsif($cmd>-1 && $soko_typ[$cmd]==12){		# 방어용 기구
		if($df_a<1){ 
			$df_a=$soko_lst[$cmd];
			$df_cnt=$soko_cnt[$cmd]; 
		}else{ $flg=-1; }
	}elsif($cmd>-1 && $soko_typ[$cmd]==13){		# 방패
		if($ds_a<1){ 
			$ds_a=$soko_lst[$cmd];
			$ds_cnt=$soko_cnt[$cmd]; 
		}else{ $flg=-1; }
	}elsif($cmd>-1 && $soko_typ[$cmd]==14){		# 도구
		# 같은 도구를 가지고 있는 경우
		if($di_a==$soko_lst[$cmd]){ $di_cnt+=$soko_cnt[$cmd]; 
		}elsif($di_a[1]==$soko_lst[$cmd]){ $di_cnt[1]+=$soko_cnt[$cmd];
		}elsif($di_a[2]==$soko_lst[$cmd]){ $di_cnt[2]+=$soko_cnt[$cmd];
		}elsif($di_a[3]==$soko_lst[$cmd]){ $di_cnt[3]+=$soko_cnt[$cmd];
		# 
		}elsif($di_a<1){	$di_a=$soko_lst[$cmd];$di_cnt=$soko_cnt[$cmd];
		}elsif($di_a[1]<1){	$di_a[1]=$soko_lst[$cmd];$di_cnt[1]=$soko_cnt[$cmd];
		}elsif($di_a[2]<1){	$di_a[2]=$soko_lst[$cmd];$di_cnt[2]=$soko_cnt[$cmd];
		}elsif($di_a[3]<1){	$di_a[3]=$soko_lst[$cmd];$di_cnt[3]=$soko_cnt[$cmd];
		}else{ $flg=-1; }
	}elsif($cmd>-1 && $soko_typ[$cmd]==15){		# 송금
		$gold+=$soko_cnt[$cmd];
	}else{
		$flg=-2;
	}

	if($flg == -1){
		$log .= qq|더 이상 가질 수 없습니다. 찾기가 취소되었습니다.<br>|;
	}elsif($flg == -2){
		$log .= qq|찾기가 취소되었습니다.<br>|;
	}else{
		$log .= qq|물건을 찾았습니다.<br>|;

		# 창고 리스트를 복구성
		$soko = qq||;
		foreach(0..$#soko_lst){
			$soko .= qq|$soko_typ[$_]<>$soko_lst[$_]<>$soko_cnt[$_]<>$soko_lv[$_]_| if($_!=$cmd);
		}
	}
}

#-----------------------------------------
# 장비 일람
sub eq_view{
	$log .= qq|맡기실 물건 또는 보낼실 물건을 선택해 주세요. ( 최대: $soko_max ) <br><br>\n|;
	$log .= qq|물건을 보낼 경우 국외라면 10%에서 20%의 수수료가 필요합니다.<br>|;
	$log .= qq|국내라면 100 개의 실버가 필요합니다.<br>|;

	$log .= qq|<form action="$script" mehtod="$method">|;
	$log .= qq|<input type="hidden" name="id" value="$id">\n|;
	$log .= qq|<input type="hidden" name="pw" value="$pw">\n|;

	$log .= qq|<input type="radio" name="cmd" value="-1" checked >그만둔다<br>\n|;
	foreach(0..$#eq){
		if($eq_cnt[$_]>0){
		if($_>=0 && $_<=3){
		$log .= qq|<input type="radio" name="cmd" value="$_">[무기] $dg_data[$eq[$_]][1] lv.$eq_lv[$_]($eq_cnt[$_])<br>\n|;
		}elsif($_==4){ 
		$log .= qq|<input type="radio" name="cmd" value="$_">[방어] $df_data[$eq[$_]][1] ($eq_cnt[$_])<br>\n|;
		}elsif($_==5){ 
		$log .= qq|<input type="radio" name="cmd" value="$_">[방패] $ds_data[$eq[$_]][1] ($eq_cnt[$_])<br>\n|;
		}elsif($_>=6 && $_<=9){
		$log .= qq|<input type="radio" name="cmd" value="$_">[도구] $di_data[$eq[$_]][1] ($eq_cnt[$_])<br>\n|;
		}
		}
	}
	$log .= qq|<input type="radio" name="cmd" value="10" >송금<br>\n|;  # 송금
	$log .= qq|<br>수량<input type="text" $button1 name="suryo" value="" maxlength="6" size="6" style="width:80;"><br>\n|;  # 송금
	$log .= qq|<input type="submit" $button1 value="입고한다">\n|;
	$log .= qq|받는사람 이름<input type="text" name="aite" value="" $button1></form>\n|;
}

#-----------------------------------------
# 창고 일람
sub soko_view{
	&soko_read;

	$log .= qq|찾으실 물건을 선택해 주세요. ( |;
	$log .= ($#soko_lst+1)." / $soko_max ) <br>\n";
	$log .= qq|<form action="$script" method="$method">\n|;

	$log .= qq|<input type="hidden" name="id" value="$id">\n|;
	$log .= qq|<input type="hidden" name="pw" value="$pw">\n|;
	$log .= qq|<input type="radio" name="cmd" value="-1" checked >그만둔다<br>\n|;

	foreach(0..$#soko_lst){
	if($soko_lst>0 && $soko_cnt>0 || true){
		$log .= qq|<input type="radio" name="cmd" value="$_">|;
		$log .= qq|[무기] $dg_data[$soko_lst[$_]][1] lv.$soko_lv[$_]($soko_cnt[$_])\n| if($soko_typ[$_]==11);
		$log .= qq|[방어] $df_data[$soko_lst[$_]][1]($soko_cnt[$_])\n| if($soko_typ[$_]==12);
		$log .= qq|[방패] $ds_data[$soko_lst[$_]][1]($soko_cnt[$_])\n| if($soko_typ[$_]==13);
		$log .= qq|[도구] $di_data[$soko_lst[$_]][1]($soko_cnt[$_])\n| if($soko_typ[$_]==14);
		$log .= qq|자금 $soko_cnt[$_] G\n| if($soko_typ[$_]==15);

		$log .= qq|4:$soko_lst[$_]/$soko_cnt[$_]/$soko_typ[$_]\n| if($soko_typ[$_]!=11 && $soko_typ[$_]!=12 && $soko_typ[$_]!=13 && $soko_typ[$_]!=14 && $soko_typ[$_]!=15);
	}
	$log .= qq|<br>\n|;
	}
	$log .= qq|<br><input type="submit" value="찾는다" $button1 ></form>|;
	# $tm = 320;
}

#-----------------------------------------
# 창고품을 배열에 격납
sub soko_read{
	my @line = split(/_/,$soko);
	foreach(0..$#line){
		my ($item_type,$item_no,$cnt,$item_lv) = split(/<>/,$line[$_]);
		$soko_lst[$_]=$item_no;
		$soko_cnt[$_]=$cnt;
		$soko_typ[$_]=$item_type;
		$soko_lv[$_]=$item_lv;
	}
}

1;
